package com.fsserver.core.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 支付订单数据传输对象
 * Payment Order DTO
 *
 * @author fsserver
 */
@Data
public class PaymentOrderDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 业务订单号
     * Business order number
     */
    @NotBlank(message = "业务订单号不能为空")
    private String businessOrderNo;

    /**
     * 订单金额
     * Order amount
     */
    @NotNull(message = "订单金额不能为空")
    @DecimalMin(value = "0.01", message = "订单金额必须大于0")
    private BigDecimal amount;

    /**
     * 订单币种
     * Order currency
     */
    private String currency = "CNY";

    /**
     * 订单标题
     * Order title
     */
    @NotBlank(message = "订单标题不能为空")
    private String title;

    /**
     * 订单描述
     * Order description
     */
    private String description;

    /**
     * 用户ID
     * User ID
     */
    private Long userId;

    /**
     * 用户名称
     * User name
     */
    private String userName;

    /**
     * 通知URL
     * Notify URL
     */
    private String notifyUrl;

    /**
     * 返回URL
     * Return URL
     */
    private String returnUrl;

    /**
     * 过期时间（分钟）
     * Expiration time (in minutes)
     */
    private Integer expirationMinutes = 30;

    /**
     * 备注
     * Remarks
     */
    private String remarks;
} 